// ------------------------------- 查询面板方法定义开始 --------------------------------------------------------------//
window.queryForm = {
    toggle: (cls = "query-panel") => { // 显示/隐藏查询面板
        if ($("." + cls).css("display") == "none"){
            $("." + cls).show("fast");
        } else {
            $("." + cls).hide("fast");
        }
    }
    , search: (func) => {
        if (func !== undefined && func !== null) {
            // 执行回调
            func();
        } else {
            // 执行数据表格搜索方法
            window.dataTable.search();
        }
    }
    , reset: (func, filter = "query-form") => {
        // 调用查询页面中表单的的重置方法
        $('[lay-filter="' + filter + '"]')[0].reset();
        
        window.queryForm.search(func);
    }
};
// ------------------------------- 查询面板方法定义结束 --------------------------------------------------------------//

// ------------------------------- 查询面板操作监听开始 --------------------------------------------------------------//
// 监听查询面板[搜索]按钮点击事件
$(".query-form-search").click((obj) => {
    // 查询数据表格
    window.queryForm.search();
});

// 监听查询面板[重置]按钮点击事件
$(".query-form-reset").click((obj) => {
    // 重置查询表单数据
    $('[lay-filter="query-form"]')[0].reset();
    // 查询数据表格
    window.queryForm.search();
});
// ------------------------------- 查询面板操作监听结束 --------------------------------------------------------------//


// ------------------------------- 查询面板初始化开始 --------------------------------------------------------------//
var $ = layui.jquery;
$(() => {
    // 移动模式下隐藏查询面板
    if ($(".query-panel").length > 0) {
        layui.use('common', function () {
            var common = layui.common;
            if (common.isModile()) {
                $(".query-panel").hide();
            } else {
                $(".query-panel").show();
            }
        });
    }
    
    /*
     * laydate 时间控件绑定
     * 控件要有"select-time"这个class，ID必须为"startTime"和"endTime"。如果有另一对起止时间控件，则必须重写配置。
     * 如：
     * <input id="startTime" class="layui-input select-time" type="text" name="startDate" placeholder="开始日期" autocomplete="off">
     * <input id="endTime"   class="layui-input select-time" type="text" name="endDate"   placeholder="结束日期" autocomplete="off">
     */
    if ($(".select-time").length > 0) {
        var startLayDate;
        var endLayDate;
        layui.use('laydate', function() {
            var laydate = layui.laydate;
            startLayDate = laydate.render({
                elem: '#startTime',
                max: $('#endTime').val(),
                theme: 'molv',
                type: $('#startTime').attr("data-type") || 'date',
                trigger: 'click',
                done: function(value, date) {
                    // 结束时间大于开始时间
                    if (value !== '') {
                        endLayDate.config.min.year = date.year;
                        endLayDate.config.min.month = date.month - 1;
                        endLayDate.config.min.date = date.date;
                    } else {
                        endLayDate.config.min.year = '';
                        endLayDate.config.min.month = '';
                        endLayDate.config.min.date = '';
                    }
                    $('#endTime').trigger('click');
                }
            });
            endLayDate = laydate.render({
                elem: '#endTime',
                min: $('#startTime').val(),
                theme: 'molv',
                type: $('#endTime').attr("data-type") || 'date',
                trigger: 'click',
                done: function(value, date) {
                    // 开始时间小于结束时间
                    if (value !== '') {
                        startLayDate.config.max.year = date.year;
                        startLayDate.config.max.month = date.month - 1;
                        startLayDate.config.max.date = date.date;
                    } else {
                        startLayDate.config.max.year = '2099';
                        startLayDate.config.max.month = '12';
                        startLayDate.config.max.date = '31';
                    }
                }
            });
        });
    }
});
// ------------------------------- 查询面板初始化结束 --------------------------------------------------------------//
